package com.zeyu.soc.log.spi.impl;

import com.zeyu.soc.log.spi.TransformDescriptor;
import com.zeyu.soc.log.spi.annotations.SpiDesc;

/**
 * The Class ElapsedTimeTransformDescriptor.
 */
@SpiDesc(desc = "统计方法耗時，支持方法嵌套后的栈试打印")
public class ElapsedTimeTransformDescriptor implements TransformDescriptor {

	// ================================================================
	// Constants
	// ================================================================

	/**
	 */
	private static final long serialVersionUID = 1L;

	// ================================================================
	// Fields
	// ================================================================

	@SpiDesc(desc = "要统计耗时的类")
	private String needInjectClassName;

	@SpiDesc(desc = "要统计耗时的方法")
	private String methodName;

	@SpiDesc(desc = "耗时超过多少才输出，毫秒为单位，不填则默认为0，即全部输出。如果嵌套的多个方法设置了不同的值，会使用最外层方法的设值。")
	private String elaspeTime = "0";

	// ================================================================
	// Constructors
	// ================================================================

	// ================================================================
	// Methods from/for super Interfaces or SuperClass
	// ================================================================

	@Override
	public String getNeedInjectClassName() {
		return needInjectClassName;
	}

	// ================================================================
	// Public or Protected Methods
	// ================================================================

	// ================================================================
	// Getter & Setter
	// ================================================================

	/**
	 * Gets the method name.
	 */
	public String getMethodName() {
		return methodName;
	}

	/**
	 * Sets the method name.
	 */
	public void setMethodName(String methodName) {
		this.methodName = methodName;
	}

	/**
	 * Gets the elaspe time.
	 */
	public String getElaspeTime() {
		return elaspeTime;
	}

	/**
	 * Sets the elaspe time.
	 */
	public void setElaspeTime(String elaspeTime) {
		this.elaspeTime = elaspeTime;
	}

	/**
	 * Sets the need inject class name.
	 */
	public void setNeedInjectClassName(String needInjectClassName) {
		this.needInjectClassName = needInjectClassName;
	}

	// ================================================================
	// Private Methods
	// ================================================================

	// ================================================================
	// Inner or Anonymous Class
	// ================================================================

	// ================================================================
	// Test Methods
	// ================================================================
}
